/***********************************************************************************
 * 文件名： mcu_wdt.h
 * 作者： 刘言
 * 版本： 1
 * 说明：
 * 		看门狗驱动。
 * 修改记录：
 * 	2024/9/20: 初版。 刘言。
 ***********************************************************************************/
#ifndef _MCU_WDT_H_
#define _MCU_WDT_H_

#include "mcu.h"


#define _WDT_KEY_RELOAD                 0x0000AAAAU               /*!< IWDG Reload Counter Enable   */
#define _WDT_KEY_ENABLE                 0x0000CCCCU               /*!< IWDG Peripheral Enable       */
#define _WDT_KEY_WR_ACCESS_ENABLE       0x00005555U               /*!< IWDG KR Write Access Enable  */
#define _WDT_KEY_WR_ACCESS_DISABLE      0x00000000U               /*!< IWDG KR Write Access Disable */






// 按照配置文件对WDT进行初始化，会启动WDT且不可以再关闭
// 注意，即便是复位，WDT也不可以被关闭或修改寄存器，必须彻底断电一段时间。
// 意味着不断电，直接修改代码配置，即便重新烧录，新的配置也不会生效，需要先断电清除之前的配置。
void Wdt_Init();

// 清零WDT计数器
STATIC_FORCE_IN_LINE void Wdt_Clear()
{
    IWDG->KR = _WDT_KEY_RELOAD;
}

// // 暂停看门狗 不支持
// #define Wdt_Disable()

// // 启动看门狗 不支持
// #define Wdt_Enable()

// // 获取看门狗开启状态 不支持
// #define Wdt_GetStatus()

#endif
